\section*{Design Diagrams}
\begin{figure}[h!]
  \subsection*{UML Design Diagrams}
  \centering
  \caption{The Overall Developer Design}
  \label{fig:design-overall}
  \includegraphics[width=6.6in]{diagrams/overall-design.pdf}
\end{figure}
\begin{figure}[h!]
  \centering
  \caption{The Overall Customer View}
  \label{fig:design-customer}
  \includegraphics[width=6.6in]{diagrams/customer-design.pdf}
\end{figure}
\begin{figure}[h!]
  \centering
  \caption{The Web Server Design}
  \label{fig:design-web-server}
  \includegraphics[width=7.75in]{diagrams/web-design.pdf}
\end{figure}
\begin{figure}[h!]
  \begin{center}
  \caption{The Web Platform Design}
  \label{fig:design-web}
  \includegraphics[width=7in]{diagrams/webUML.pdf}
  \end{center}

  The Web-Client UML displays the client's website structure,
  including some necessary Javascript packages that will help
  communication between the web server and browser and handling events
  made by users. The website style will be controlled by the CSS
  package shown in the diagram. The Web-Client will contain three
  major components: DataView, AddSpecimen, and AdminView. These three
  views will be displayed based on the user's permission
  level. Generally, DataView will be available to everyone like Lab,
  Client, and Administrator. AddSpecimen is only available to Client
  and Administrator. Lastly, AdminView is available to only
  Administrator.

\end{figure}
\begin{figure}[h!]
  \centering
  \caption{The Android Server Design}
  \label{fig:design-android-server}
  \includegraphics[width=7in]{diagrams/android-server-design.pdf}
\end{figure}
\begin{figure}[h!]
  \centering
  \caption{The Android App Design}
  \label{fig:design-android}
  \includegraphics[width=7in]{diagrams/AndroidClassDiagram.pdf}
\end{figure}
\begin{figure}[h!]
  \centering
  \caption{The Database Schema}
  \label{fig:design-schema}
  \includegraphics[width=7in]{diagrams/schema_diagram.pdf}
\end{figure}
\begin{figure}[h!]
  \begin{center}
  \caption{The Database Interface Design}
  \label{fig:design-database}
  \includegraphics[width=7in]{diagrams/db.pdf}
  \end{center}

The database interface will contain query type methods for the tracking system.
The interface deals with Records, a set of Java objects that will be based off
the schema of the database. The inner workings of the database will use the 
methods that are called to convert records to SQL queries and transactions.
The interface will then return the results of the query in the form of Records
for the rest of the system to work with.

The actual Postgres handler uses pieces of java.sql to create queries and other
transactions. The sql library in turn uses a specific jdbc driver for Postgres
to connect to the actual database.
  
\end{figure}

\begin{figure}[h!]
  \centering
  \caption{The Java Representation of the Database Schema}
  \label{fig:design-db-handler}
  \includegraphics[width=7in]{diagrams/Records.pdf}
\end{figure}

\begin{figure}[h!]
  \centering
  \caption{The Event-Driven Database Handler Design}
  \label{fig:design-db-handler}
  \includegraphics[width=7in]{diagrams/Event_Handler.pdf}
\end{figure}

\begin{figure}[h!]
  \subsection*{Sequence Diagrams}
  \centering
  \caption{}
  \label{fig:design-add-use-case}
  \includegraphics[width=6.6in]{diagrams/AddSpecimenUseCase.pdf}
\end{figure}
\begin{figure}[h!]
  \centering
  \caption{}
  \label{fig:design-scan-use-case}
  \includegraphics[width=7in]{diagrams/ScanSpecimenUseCase.pdf}
\end{figure}
